package com.minimvc.interfaces
{
	import flash.display.DisplayObject;
	import flash.events.Event;
	import flash.events.IEventDispatcher;
	import flash.utils.Dictionary;
	
	
	/**
	 *  视图中介接口(也可称为视图控制器)
	 * @author crl
	 * 
	 */	
	public interface IMediator
	{
		/**
		 * 中介的名称,用于与其它中介的区分; 
		 * @return 
		 * 
		 */		
		function getName():String;
		
		/**
		 * 取得所代理视图; 
		 * @return 
		 * 
		 */		
		function getView():DisplayObject;
		
		/**
		 * 设置视图; 
		 * @param view
		 * 
		 */		
		function setView( view:DisplayObject ):void;
		
		/**
		 * 设置数据模型; 
		 * @param model
		 * 
		 */		
		function setModel(model:*):void;
		
		/**
		 * 取得模型; 
		 * @return 
		 * 
		 */		
		function getModel():*;
		
		/**
		 *  对哪些事件观注; 
		 * @return 
		 * 
		 */		
		function get eventInterests( ):Dictionary;
		/**
		 * 对于本代理所帧听的事件的,统一处理函数; 
		 * @param event
		 * 
		 */		
		function handle( event:Event ):void;
		
		/**
		 * 当被注册到应用中触发 
		 * 
		 */		
		function onRegister():void;
		
		/**
		 * 当从应用中删除时触发; 
		 * 
		 */		
		function onRemove():void;
		
	}
}